package inner_class.local_inner_class;

/**
 * @Package: inner_class.local_inner_class
 * @ClassName: LocalInnerClass
 * @Author: x2606
 * @CreateTime: 2022/3/12 11:27
 * @Description: 局部内部类
 */

public class LocalInnerClass {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.fun1();
    }
}

class Outer{//内部类
    private int n=100;

    public void fun1(){
        //局部内部类定义在外部类的局部位置，通常在方法
        class Inner{//内部类
            private int n=200;
            public void fun2(){
                //可以访问外部类所有成员
                System.out.println(n);//重名遵循就近原则
                System.out.println(Outer.this.n);
            }
        }

        //外部类要访问局部内部类的成员需要先创建对象实例，访问必须在作用域内，即定义的该局部。
        Inner inner = new Inner();
        inner.fun2();
    }
}
